package org.mao.base;

import java.util.List;

public interface BaseService<T extends BaseEntity> {
	
	/**
	 * 基础服务，插入一条记录
	 * @param t 某实体类的实例
	 * @return 插入数据库后的实例，包含一些自增字段及default值
	 * @throws Exception
	 */
	public void insert(T t) throws Exception;
	
	/**
	 * 基础服务，更新N条记录
	 * @param t 某实体类的实例，只更新有值的字段
	 * @throws Exception
	 */
	public int update(T t) throws Exception;
	
	/**
	 * 基础服务，查询唯一一条记录
	 * @param t 某实体类的实例，有值的字段作为查询条件
	 * @return 查询到的实例
	 * @throws Exception
	 */
	public T get(T t) throws Exception;
	
	/**
	 * 基础服务，查询出所有记录，默认限制为1000条
	 * @param t 某实体类的实例
	 * @return 实体类的实例
	 * @throws Exception
	 */
	public List<T> list() throws Exception;

}
